// 用户信息模块
// 导入express框架
const express = require('express')
// 使用express框架的路由
const router = express.Router()
// 导入express-joi中间件
const expressJoi = require('@escook/express-joi')
// 导入验证规则
const { password_limit, name_limit, gender_limit, email_limit, forgetPassword_limit } = require('../limit/userinfo')
// 导入userinfo的路由处理模块
const userinfoHander = require('../router_handle/userinfo')

// 上传头像
router.post('/uploadAvatar', userinfoHander.uploadAvatar)
// 绑定账号
router.post('/bindAccount', userinfoHander.bindAccount)
// 修改密码
router.post('/changePassword', expressJoi(password_limit), userinfoHander.changePassword)
// 获取用户信息
router.post('/getUserInfo', userinfoHander.getUserInfo)
// 修改姓名
router.post('/changeName', expressJoi(name_limit), userinfoHander.changeName)
// 修改性别
router.post('/changeGender', expressJoi(gender_limit), userinfoHander.changeGender)
// 修改邮箱
router.post('/changeEmail', expressJoi(email_limit), userinfoHander.changeEmail)
// 忘记密码第一步
router.post('/verifyAccountAndEmail', userinfoHander.verifyAccountAndEmail)
// 忘记密码第二步
router.post('/changePasswordInLogin', expressJoi(forgetPassword_limit), userinfoHander.changePasswordInLogin)
// 添加管理员
router.post('/createAdmin', userinfoHander.createAdmin)
// 获取管理员列表
router.post('/getAdminList', userinfoHander.getAdminList)
// 修改管理员信息接口
router.post('/editAdmin', userinfoHander.editAdmin)
// 修改身份接口(赋权、降级)
router.post('/changeIdentity', userinfoHander.changeIdentity)
// 通过账号搜索用户
router.post('/searchUser', userinfoHander.searchUser)
// 通过部门筛选用户
router.post('/searchByDepartment', userinfoHander.searchByDepartment)
// 冻结或解冻用户账号
router.post('/changeStatus', userinfoHander.changeStatus)
// 获取被冻结用户列表
router.post('/getBanList', userinfoHander.getBanList)
// 删除账户（注销账户）
router.post('/deleteUser', userinfoHander.deleteUser)
// 分页功能实现
// 获取对应身份的总人数
router.post('/getAdminListLength', userinfoHander.getAdminListLength)
// 监听换页返回该页数据
router.post('/returnListData', userinfoHander.returnListData)
// 暴露路由
module.exports = router